// P2590 write by cn_ryh